#!/bin/bash

cvc4=./cvc4
bench="$1"

file=${bench##*/}
filename=${file%.*}

echo "------- cvc4-tfn casc 25 : $bench at $2..."

# use: trywith [params..]
# to attempt a run.  If an SZS ontology result is printed, then
# the run script terminates immediately.  Otherwise, this
# function returns normally.
function trywith {
  limit=$1; shift;
  echo "--- Run $@ at $limit...";
  (ulimit -t "$limit";$cvc4 --lang=tptp --no-checking --no-interactive --force-logic="UFNIRA" "$@" $bench) 2>/dev/null |
  (read w1 w2 w3 result w4 w5;
  case "$result" in
  Satisfiable) echo "$w1 $w2 $w3 $result $w4 $w5";cat;exit 0;;
  CounterSatisfiable) echo "$w1 $w2 $w3 $result $w4 $w5";cat;exit 0;;
  esac; exit 1)
  if [ ${PIPESTATUS[1]} -eq 0 ]; then exit 0; fi
}
function finishwith {
  echo "--- Run $@...";
  $cvc4 --lang=tptp --no-checking --no-interactive --force-logic="UFNIRA" "$@" $bench
}

trywith 30 --cbqi2 --decision=internal --full-saturate-quant
trywith 30 --cbqi --full-saturate-quant
trywith 60 --cbqi --cbqi-recurse --full-saturate-quant
trywith 60 --fmf-bound-int --macros-quant
finishwith --cbqi2 --cbqi-recurse --full-saturate-quant
# echo "% SZS status" "GaveUp for $filename"
